package com.chai.service.impl;

import com.chai.dao.User;
import com.chai.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * setter方式：简单类型的注入和引用类型的注入
 * */
@Component("bookService")

public class BookServiceImpl implements BookService{
    //自动装配是按照类型进行装配，如果需要指定名称需要提供,不需要提供相应的set方法
    @Autowired
    @Qualifier("user")
    public User user;
    //加载外部配置文件中变量名
    @Value("${max}")
    public int max;
    public void save(){
        user.print();
    }

    public void execute() {
        System.out.println("执行成功！"+max);
    }


    //销毁方法(在销毁之前执行)
    @PreDestroy
    public void destroy() throws Exception {
        System.out.println("标准销毁Bean后的执行方法");
    }
    //初始化方法(在构造方法之后)
    @PostConstruct
    public void init() throws Exception {
        System.out.println("Bean的初始化方法");
    }
}
